package editorsvg.propiedades;

import java.util.ArrayList;
import java.util.List;

/**
 * Propiedad que contiene una lista de numeros reales.
 *
 * @author Jorge Berjano
 */
public class PropiedadListaNumerosReales extends PropiedadLista {

    @Override
    public boolean parsearPropiedad(String valorString) {
        List<Double> valores = new ArrayList<Double>();

        String[] tokens = valorString.split(" ");
        for (String token : tokens) {
            Double valor = Double.parseDouble(token);
            if (valor != null) {
                valores.add(valor);
            }
        }

        asignarLista(valores);
        return true;
    }

    public Double obtenerMaximo() {
        List lista = obtenerLista();
        if (lista == null) {
            return 0.0;
        }
        double maximo = 0;
        for (Object elemento : lista) {
            if (elemento instanceof Double) {
                maximo = Math.max(maximo, (Double) elemento);
            }
        }
        return maximo;
    }

    @Override
    public void asignarLista(List valores) {
        List<Double> valoresNumericos = new ArrayList<Double>();
        for (Object valor : valores) {
            Double valorNumerico = Double.parseDouble(valor.toString());
            valoresNumericos.add(valorNumerico);
        }
        super.asignarLista(valoresNumericos);
    }
}
